package com.xcl.mapper;

import com.xcl.pojo.BreakmajorityEpiboly;
import com.zzg.entity.Logistics;
import com.zzg.entity.Outsourcing;
import com.zzg.entity.Waybill;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @ClassName XclBreakmajorityEpibolyMapper
 * @Description 零担外包
 * @Author: xiaochaolei
 * @date 2021/7/16 9:10
 * @Version 1. 0
 */
@Mapper
public interface XclBreakmajorityEpibolyMapper {
    /**
     * 得到所有的零担外包
     * @return 零担外包集合
     */
    public List<BreakmajorityEpiboly> getBreakmajorityEpibolyAll();

    /**
     * 分页查询零担外包
     * @param page 页码数
     * @param limit 条目数
     * @return 集合零担外包
     */
    public List<BreakmajorityEpiboly> getBreakmajorityEpibolyByLimit(@Param(value = "page") int page, @Param(value = "limit") int limit);


    /**
     * 多条件查询
     * @param page 页码数
     * @param limit 条目数
     * @param sub_id 所在分站
     * @param waybill_id 运单号
     * @param arrivalCity  所在城市
     * @param consignDate 托运日期
     * @return  集合零担外包
     */
    public List<BreakmajorityEpiboly> getBreakmajorityEpibolyByWhere(
            @Param(value = "page") int page,
            @Param(value = "limit") int limit,
            @Param(value = "sub_id") String sub_id,
            @Param(value = "waybill_id") String waybill_id,
            @Param(value = "arrivalCity") String arrivalCity,
            @Param(value = "consignDate") String consignDate
    );

    /**
     * 将状态修改成运输外包
     * @param waybill_id 运单号
     * @return 影响行数
     */
    public int updateBreakmajorityEpiboly(@Param(value = "waybill_id") String waybill_id);

    /**
     * 根据id查询信息
     * @param id 运单id
     * @return 零担外包
     */
    public BreakmajorityEpiboly getBreakmajorityEpibolyById(@Param(value = "id") String id);

    /**
     * 得到所有的承担商
     * @return 承担商集合
     */
    public List<Logistics> getLogisticsAll();

    /**
     * 根据id得到承担商信息
     * @param id 承担商id
     * @return 承担商信息
     */
    public Logistics getLogisticsById(@Param(value = "id") String id);

    /**
     * 根据phone 判断是否存在
     * @param phone  电话号码
     * @return 物流承担商信息
     */
    public Logistics getLogisticsByPhone(@Param(value = "phone") String phone);

    /**
     * 新增外包订单信息
     * @param outsourcing
     * @return
     */
    public int insertOutsourcing(Outsourcing outsourcing);

    /**
     * 根据运单号查询运单信息
     * @param id 运单号
     * @return 运单信息
     */
    public Waybill getWaybillById(@Param(value = "id") String id);

    /**
     * 查询外包单号是否存在
     * @param outsourcingOrder 外包单号
     * @return 外包信息
     */
    public Outsourcing getOutsourcingByOutsourcingOrder(@Param(value = "outsourcingOrder") double outsourcingOrder);
}
